package com.egao.gzh.service;

import com.egao.common.core.damon.utils.HttpsUtils;
import com.egao.gzh.entity.GzhObjTemplate;
import com.egao.gzh.entity.TempSend;
import com.egao.gzh.entity.button.*;
import com.egao.gzh.utils.WXPublicConstants;
import net.sf.json.JSONObject;


/**
 * @author Damon
 * @create 2020-08-26 12:47
 */
public class SettingGzh {

    /**
     *
     * 公众号的各种硬性设置
     * @param args
     */
    public static void main(String[] args) {
        SettingGzh cm = new SettingGzh();

        //创建菜单直接运行这个方法就可以了
//        cm.createGzhMenu();

//        //查看设置的菜单
//        System.out.println(cm.searchGzhMenu());

//        //删除公众号的自定义菜单
//        System.out.println(cm.delGzhMenu());


        //设置所属行业
//        cm.setIndustry();

        //得到设置所属行业
//        cm.getIndustry();

        //获取模板列表
//        cm.getPrivateTemplate();

        //发送对应的模板消息
        TempSend tempSend2 = new TempSend();
        tempSend2.setTouser("owHBe6MpBnAikS4ZJWMJjmN5hpUk");
        tempSend2.setTemplateId("NmUIzARvtGDHaxf8PpXjMpU3H-Qy_5ZTj7St51Wd56s");
        tempSend2.setFirst("测试~~~车牌:浙B1R159, 司机:禾滕 已到厂");
        tempSend2.setKeyword1("2021-01-01 12:23:10");
        tempSend2.setKeyword2("鄞州大道2段");
        tempSend2.setRemark("状态:已到厂");
        tempSend2.setUrl("https://gzhsy.sszgjzx.com/trace");
        cm.setPrivateTemplate(tempSend2);
    }

    /**
     * 设置公众号的菜单
     */
    public void createGzhMenu() {
        //菜单对象
        Button btn = new Button();
        /*//第一个一级菜单
        SubButton sb = new SubButton("一级1菜");
        sb.getSub_button().add(new ClickButton("1菜1", "12"));
        sb.getSub_button().add(new ClickButton("1菜2", "14"));
        sb.getSub_button().add(new ViewButton("百度", "http://www.baidu.com"));
        //加入第三个菜单
        btn.getButton().add(sb);
        //第二个一级菜单
        btn.getButton().add(new ClickButton("2菜1", "22"));
        //创建第三个一级菜单
        sb = new SubButton("一级3菜");
        //为第三个一级菜单增加子菜单
        sb.getSub_button().add(new PhotoOrAlbumButton("3菜1传图", "32"));
        sb.getSub_button().add(new ClickButton("3菜2", "34"));
        sb.getSub_button().add(new ViewButton("网易新闻", "http://news.163.com"));
        //加入第三个菜单
        btn.getButton().add(sb);*/

        btn.getButton().add(new ViewButton("首页", "https://gzhsy.sszgjzx.com"));
        btn.getButton().add(new ViewButton("运单信息", "https://gzhsy.sszgjzx.com/plathome"));
        SubButton sb = new SubButton("企业信息");
        //为第三个一级菜单增加子菜单
        sb.getSub_button().add(new ViewButton("公司简介", "https://sszgjzx.com:4332/cIntroduction.html"));
        sb.getSub_button().add(new ViewButton("公告", "https://oa.sszgjzx.com:9331/oa/gzhMessageNt"));
        //加入第三个菜单
        btn.getButton().add(sb);

        /*SubButton sb = new SubButton("公司简介");
        sb.getSub_button().add(new ViewButton("公司简介", "https://gzhsy.sszgjzx.com/#/homeindex"));
        //加入第三个菜单
        btn.getButton().add(sb);*/

        JSONObject jobj = JSONObject.fromObject(btn);

        SettingGzh cm = new SettingGzh();
        String ret = HttpsUtils.post(WXPublicConstants.CREATE_MENU + GzhToken.getAccessToken(), jobj.toString());
        System.out.println(ret);
    }

    /**
     * 查询公众号的菜单
     */
    public String searchGzhMenu() {
        String url = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=";
        String a  = null;
        try {
            a = HttpsUtils.get(url + GzhToken.getAccessToken());
        } catch (Exception e) {
            e.printStackTrace();
        }
//        String a = new RestTemplate().getForObject(url + gzhToken.getAccessToken(), String.class);
        return a;
    }

    /**
     * 删除公众号的自定义菜单
     */
    public String delGzhMenu() {
        String url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=";
        String a  = null;
        try {
            a = HttpsUtils.get(url + GzhToken.getAccessToken());
        } catch (Exception e) {
            e.printStackTrace();
        }
//        String a = new RestTemplate().getForObject(url + gzhToken.getAccessToken(), String.class);
        return a;
    }


    /**
     * 设置所属行业
     */
    public void setIndustry() {
        String url = "https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=" + GzhToken.getAccessToken();
        JSONObject obj = new JSONObject();
        //IT科技	IT软件与服务	2
        obj.put("industry_id1", "2");
        //运输与仓储	物流	14
        obj.put("industry_id2", "14");
        String str = "{" +
                "    \"industry_id1\":\"2\"," +
                "    \"industry_id2\":\"14\"" +
                "}";
        String ret = HttpsUtils.post(url, obj.toString());
        System.out.println(ret);
    }

    /**
     * 设置所属行业
     */
    public void getIndustry() {
        String url = "https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=" + GzhToken.getAccessToken();
        String ret = null;
        try {
            ret = HttpsUtils.get(url);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(ret);
    }

    /**
     * 获取模板列表
     */
    public void getPrivateTemplate() {
        String url = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=" + GzhToken.getAccessToken();
        String ret = null;
        try {
            ret = HttpsUtils.get(url);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(ret);
    }

    /**
     *  发送对应的模板消息
     */
    public void setPrivateTemplate(TempSend tempSend) {
        String url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + GzhToken.getAccessToken();
        JSONObject obj = new JSONObject();
        obj.put("touser", tempSend.getTouser());
        obj.put("template_id", tempSend.getTemplateId());
        obj.put("url", tempSend.getUrl());

        JSONObject data = new JSONObject();
        data.put("first",new GzhObjTemplate(tempSend.getFirst(), "#e54d42"));
        data.put("keyword1",new GzhObjTemplate(tempSend.getKeyword1(), "#0081ff"));
        data.put("keyword2",new GzhObjTemplate(tempSend.getKeyword2(), "#a5673f"));
        data.put("remark",new GzhObjTemplate(tempSend.getRemark(), "#a5673f"));

        obj.put("data", data);
        String ret = HttpsUtils.post(url, obj.toString());
        System.out.println(ret);
    }
}
